
LLVM使用一系列的通道来优化IR，一个通道在IR的一个单元上运行，例如一个函数或一个模块。操作可以是转换，以定义的方式更改IR，也可以是分析，其收集诸如依赖关系之类的信息。这一系列的通道称为通道流水线，通道管理器在编译器生成的IR上执行通道流水线，所以需要了解通道管理器的作用以及如何构造一个通道流水线。编程语言的语义可能需要开发新的通道，我们必须将这些通道添加到流水线中。

本章中，将了解以下内容:

\begin{itemize}
\item
如何利用LLVM通道管理器在LLVM内实现通道

\item
如何在LLVM项目中实现一个instrumentation通道，以及一个单独的插件

\item
使用LLVM工具的ppprofiler通道时，如何使用opt和clang的通道插件

\item
向编译器中添加优化流水时，将使用基于新通道管理器的优化流水扩展tinylang编译器
\end{itemize}

本章结束时，将了解如何开发新的通道，以及如何将其添加到通道流水线中，还可以在编译器中设置通道流水线。